﻿using System;
using System.Web.UI;
using OwnZTec.Bl;
using OwnZTec.Dto;

namespace OwnZTec.Web.conteudoseguro.Administracao
{
    public partial class PerfilEditar : Page
    {
        #region -- Membros e construtores -------------------------------------------------------------------------------------------------
        protected DtoPerfil Perfil
        {
            get { return (DtoPerfil)Session["PerfilEditar_Perfil"] ?? new DtoPerfil(); }
            set { Session["PerfilEditar_Perfil"] = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                Inicializar();
        }
        #endregion ------------------------------------------------------------------------------------------------------------------------

        #region -- Metodos ----------------------------------------------------------------------------------------------------------------
        protected void Inicializar()
        {
            if (!string.IsNullOrEmpty(Request.QueryString["Id"]))
            {
                int id;
                int.TryParse(Request.QueryString["Id"], out id);

                if (id != 0)
                {
                    var bl = new BlPerfil();

                    var perfil = bl.ListarUm(id);

                    txtId.Text = perfil.Id.ToString();
                    txtNome.Text = perfil.Nome;
                    txtDescricao.Text = perfil.Descricao;

                    Perfil = perfil;

                    return;
                }
            }

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myscript", "alert('Id inválido ou não especificado!'); window.location = 'PerfilListar.aspx';", true);
        }
        #endregion ------------------------------------------------------------------------------------------------------------------------

        #region -- Eventos ----------------------------------------------------------------------------------------------------------------
        protected void CmdSalvarClick(object sender, EventArgs e)
        {
            var bl = new BlPerfil();

            if (bl.ExistePerfil(txtNome.Text, Convert.ToInt32(txtId.Text)))
            {
                lblInfo.Text = "Já existe um perfil com este nome. Favor informar outro nome de perfil.";

                txtNome.Focus();
                txtNome.Attributes["onfocus"] = "this.select();";
            }

            else
            {
                lblInfo.Text = "";

                bl.SalvarPerfil(new DtoPerfil { Id = Convert.ToInt32(txtId.Text), Nome = txtNome.Text, Descricao = txtDescricao.Text });

                Response.Redirect("PerfilListar.aspx");
            }
        }

        protected void CmdRestaurarClick(object sender, EventArgs e)
        {
            txtNome.Text = Perfil.Nome;
            txtDescricao.Text = Perfil.Descricao;
        }
        #endregion ------------------------------------------------------------------------------------------------------------------------
    }
}